package ui;

import java.awt.Color;
import java.awt.Font;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.data.category.DefaultCategoryDataset;

public class BarChartPanel {
	ChartPanel frame1;
	
	   public BarChartPanel(int x1, int x2, int x3, int x4, int x5, String name) {
		// TODO 自动生成的构造函数存根
   		
    	//CategoryDataset dataset = getDataSet();
       DefaultCategoryDataset dataset = new DefaultCategoryDataset();
          
          
          dataset.addValue(x1,name,"0~60");
        
          dataset.addValue(x2, name, "61~70");
        
          dataset.addValue(x3, name, "71~80");
       
          dataset.addValue(x4, name, "81~90");
        
          dataset.addValue(x5, name, "91~100");
       JFreeChart chart = ChartFactory.createBarChart3D(
      		                 "成绩柱形图", // 图表标题
                           "科目", // 目录轴的显示标签
                           "人数", // 数值轴的显示标签
                           dataset, // 数据集
                           PlotOrientation.VERTICAL, // 图表方向：水平、垂直
                           true,           // 是否显示图例(对于简单的柱状图必须是false)
                           false,          // 是否生成工具
                           false           // 是否生成URL链接
                           );
       
       //从这里开始
       CategoryPlot plot=chart.getCategoryPlot();//获取图表区域对象
      // plot.getRenderer().setSeriesPaint(50, new Color(10,10,10)) ;
       BarRenderer3D customBarRenderer = (BarRenderer3D) plot.getRenderer(); 
       customBarRenderer.setSeriesPaint(0, Color.decode("#7979FF")); // 给series1 Bar 
       
       CategoryAxis domainAxis=plot.getDomainAxis();         //水平底部列表
        domainAxis.setLabelFont(new Font("黑体",Font.BOLD,14));         //水平底部标题
        domainAxis.setTickLabelFont(new Font("宋体",Font.BOLD,12));  //垂直标题
        ValueAxis rangeAxis=plot.getRangeAxis();//获取柱状
        rangeAxis.setLabelFont(new Font("黑体",Font.BOLD,15));
         chart.getLegend().setItemFont(new Font("黑体", Font.BOLD, 15));
         chart.getTitle().setFont(new Font("宋体",Font.BOLD,20));//设置标题字体
         
         //到这里结束，虽然代码有点多，但只为一个目的，解决汉字乱码问题
         
        frame1 = new ChartPanel(chart,true);        //这里也可以用chartFrame,可以直接生成一个独立的Frame
        
		   
	}

	public ChartPanel getChartPanel(){
			return frame1;
			
		}
}
